
// 初始化 "项目 >>>> 模块" 二级联动菜单
var SelectInit = function(defaultProjectId, defaultModuleId){
    var cmbProject = document.getElementById("selectProject")
    var cmbModule = document.getElementById("selectModule")

    var dataList = []

    // 设置默认选项
    function setDefaultOption(obj, id){
        for(var i = 0; i<obj.options.length; i++){
            if (obj.options[i].value == id){
                obj.selectedIndex = i
                return
            }
        }
    }

    // 创建下拉选项
    function createOption(cmb, obj){
        // cmb 是下拉框对象
        var option = document.createElement("option")
        cmb.options.add(option)
        option.innerHTML = obj.name
        option.value = obj.id
    }

    // 改变项目
    function changeProject(){
        cmbModule.options.length = 0
        console.log("项目默认选项的索引:" + cmbProject.selectedIndex)
        var pid = cmbProject.options[cmbProject.selectedIndex].value
        console.log("这个才是真正的项目的id："+ pid)

        for(let i =0; i<dataList.length; i++){
            if(dataList[i].id == pid){
                let modules = dataList[i].moduleList
                console.log("对应的模块列表" + modules)
                for(let j = 0; j<modules.length; j++){
                    createOption(cmbModule,modules[j])
                }
            }
        }
        setDefaultOption(cmbModule, defaultModuleId)
    }

    function getSelectData(){
        // 调用获取 select 数据列表
        $.get("/case_manage/get_select_data/",{}, function(resp){
            if(resp.status === 10200){
                dataList = resp.data
                console.log("获取到的数据格式对象:" + dataList)
                // 遍历项目
                for(var k =0; k<dataList.length; k++){
                    console.log("将每一个项目数据组装成项目下拉列表的每一项：" + dataList[k])
                    createOption(cmbProject, dataList[k])
                }
                setDefaultOption(cmbProject,defaultProjectId)
                changeProject()
                cmbProject.onchange = changeProject
            }
            setDefaultOption(cmbProject, defaultProjectId)
        });
    }
    // 调用 getSelectData 函数
    getSelectData()
}


// 获取用例信息用于编辑用例
var TestCaseInit = function(){
    //  获取URL的4种方法
    // var url_1 = window.location.href
    // var url_2 = self.location.href
    // var url_3 = document.URL
    var url_4 = document.location
    console.log("url_4:" + url_4)
    var case_id = url_4.pathname.split("/")[3]
    console.log(case_id)

    $.post("/case_manage/get_case_info/",
        {
            case_id : case_id
        },
        function(resp,status){
            console.log(resp.data)
            document.querySelector('#req_url').value = resp.data.url
            document.querySelector('#case_name').value = resp.data.name
            document.querySelector('#header').value = resp.data.request_header
            document.querySelector('#parameter').value = resp.data.parameters
            document.querySelector('#assert').value = resp.data.expected_value
            document.querySelector('#json_extract').value = resp.data.json_extract
            document.querySelector('#regular_expression').value = resp.data.regular_expression
            document.querySelector('#regular_extract').value = resp.data.regular_extract
            document.querySelector("#result").value = resp.data.response
            // 给参数类型赋值
            if(resp.data.params_type == "form-data"){
                    document.querySelector('#form').setAttribute("checked","")
                }
            else if(resp.data.params_type == "json"){contains
                    document.querySelector("#json").setAttribute("checked","")
                }
            // 给断言类型赋值
            if (resp.data.assert_type == "equal"){
                    document.querySelector('#equal').setAttribute("checked","")
                }
            else if (resp.data.assert_type == "contains"){
                    document.querySelector('#contains').setAttribute("checked","")
                }
           // 给请求方法赋值
            let request_method_options = document.querySelectorAll("#req_method > option")
            console.log("请求方法"+request_method_options)
            for(let j = 0; j<request_method_options.length;j++){
                if(request_method_options[j].value == resp.data.request_method){
                    request_method_options[j].selected = true
                     // document.querySelectorAll("#req_method > option")[j].value = resp.data.request_method
                     document.querySelectorAll(".filter-option-inner-inner")[0].innerText = resp.data.request_method.toUpperCase()
                }
            }
            // 初始化项目----模块2级联动列表
            SelectInit(resp.data.project_id, resp.data.module_id)
           //
        }
    );
}